Skip to content

Coordinator boundary: advisory tier for prose / pasted-spec leakage#95

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/coordinator-boundary-prose-advisory
Jun 21, 2026
Merged

Coordinator boundary: advisory tier for prose / pasted-spec leakage#95
hyperpolymath merged 1 commit into
mainfrom
claude/coordinator-boundary-prose-advisory

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Why

Follow-up to #88 (the pure-coordinator pivot). That PR's hooks/validate-coordinator-boundary.sh catches structural leakage — language source files (*.agda/*.ebnf/*.ks/…), compiler source trees, and re-vendored language directories. But it would not have caught the original "TypeFix Zero" incident: a whole language spec pasted as prose into README.adoc. This adds a heuristic tier to close that gap as far as is sensible.

What

A non-blocking advisory tier in hooks/validate-coordinator-boundary.sh:

  • Scope — the coordinator's narrative surface: top-level *.md/*.adoc + docs/, minus docs/disambiguation/ (cross-language by design). It deliberately does not scan wiki/ (the kept teaching pages legitimately embed rust/ocaml/agda/ebnf snippets, 28–42 fences each) or extraction-queue/.
  • Signals — grammar/proof code fences (agda/lean/coq/idris/ebnf/bnf/antlr/g4), implementation-language fences (rust/ocaml/reason/rescript), and unfenced spec tells (BNF ::=, sequents , universe/fixpoint typing judgments like Type i : Type and fix : (A -> A)).
  • BehaviourWARNS only; never fails the build. Heuristics are fuzzy, so false positives must not block a coordinator that legitimately discusses languages. Emits GitHub Actions ::warning:: annotations so findings still surface on PRs. The existing structural checks remain hard errors.

Verification

clean tree            → exit 0, 0 warnings
planted TF0-style spec → 3 advisory warnings (fix:(A->A), an agda fence, a ::= production), still exit 0
planted .lean file     → exit 1 (structural check still hard-fails)

The narrative surface is currently clean (0 hits), and the original TF0 text now lives only in the exempt extraction-queue/typefix-zero/ — so this passes today and would have flagged the original paste.

Honest limitation

This is heuristic prose detection: it catches grammar/proof/impl code blocks and common typing-judgment notation, but a sufficiently plain-English language description with no notation could still slip past. The primary defenses remain the rewritten instruction layer (prevention) and review; this is a best-effort backstop, kept advisory precisely because it's fuzzy.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MWPX7iyvHf5AuwBAn1sJPy


Generated by Claude Code

…kage

The structural guard catches language *files* and re-vendored language dirs, but
not a grammar, typing rules, or a whole language spec pasted into a narrative doc
(how "TypeFix Zero" ended up inside README.adoc). This adds a NON-blocking advisory
scan to hooks/validate-coordinator-boundary.sh:

- Scope: the coordinator's narrative surface (top-level *.md/*.adoc + docs/, minus
  docs/disambiguation/). It does NOT scan wiki/ (where rust/ocaml/agda/ebnf teaching
  snippets legitimately live) or extraction-queue/ (staged content).
- Flags: grammar/proof code fences (agda/lean/coq/idris/ebnf/bnf/antlr/g4),
  implementation-language fences (rust/ocaml/reason/rescript), and unfenced spec
  tells (BNF ::=, sequents, universe/fixpoint typing judgments).
- WARNS only — never fails the build (heuristic; false positives must not block).
  Emits GitHub Actions ::warning:: annotations so findings surface on PRs.

Verified: passes clean on the current tree; flags a planted TF0-style spec
(fix : (A -> A), an agda fence, a ::= production) as 3 warnings while staying exit 0;
structural leaks still hard-fail.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MWPX7iyvHf5AuwBAn1sJPy
@hyperpolymath hyperpolymath marked this pull request as ready for review June 21, 2026 13:51
@hyperpolymath hyperpolymath merged commit f345718 into main Jun 21, 2026
11 of 13 checks passed
@hyperpolymath hyperpolymath deleted the claude/coordinator-boundary-prose-advisory branch June 21, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants